package com.cloudbroker.bcs.platform.dav.bizapi.t2service.business;

import com.cloudbroker.bcs.common.entity.HSBCPSBackNumVO;
import com.cloudbroker.bcs.common.entity.HSBCPSBackVO;
import com.cloudbroker.bcs.platform.dav.bizapi.constants.IFSFunctionIdsNew;
import com.cloudbroker.bcs.platform.dav.bizapi.service.base.vo.HSBCPSVO;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.question.result.QuestionListResult;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.question.result.TenantQuestionListResult;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.question.vo.QuesAnsListForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.question.vo.QuesAnswerForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.question.vo.QuesAnswerUpdateForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.question.vo.QuesAskForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.question.vo.QuesAskNumForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.question.vo.QuestionIdForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.question.vo.TenantQuesAskForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.viewpoint.vo.TenantKeyListQryForm;
import com.hundsun.jresplus.remoting.impl.annotation.Service;
import com.hundsun.jresplus.remoting.impl.annotation.ServiceModule;
import com.hundsun.jresplus.remoting.impl.annotation.ServiceParam;

@ServiceModule
public interface QuestionAnswerT2BizService {

    /**
     * 粉丝端问与答列表
     * */
    @Service(functionId = IFSFunctionIdsNew.IFSDavQuestionFuncIds.FUNC_QUESTION_LIST_BY_FANS, desc = "问与答列表")
    public QuestionListResult funcQuestionAnswerListByFans(@ServiceParam("param") QuesAnsListForm param);
    
    /**
     * 大V端问与答列表
     * */
    @Service(functionId = IFSFunctionIdsNew.IFSDavQuestionFuncIds.FUNC_QUESTION_LIST_BY_DAV, desc = "问与答列表")
    public QuestionListResult funcQuestionAnswerListByDav(@ServiceParam("param") QuesAnsListForm param);
    
    /**
     * DAVF0302 提问
     * */
    @Service(functionId = IFSFunctionIdsNew.IFSDavQuestionFuncIds.FUNC_QUESTION_ASK, desc = "提问")
    public HSBCPSBackVO funcAskQuestion(@ServiceParam("param") QuesAskForm param);
    
    /**
     * DAVF0303 我的问题被回答提醒
     * */
    @Service(functionId = IFSFunctionIdsNew.IFSDavQuestionFuncIds.FUNC_ANSWERD_NUM, desc = "我的问题被回答提醒")
    public HSBCPSBackNumVO funcAnswerdNum(@ServiceParam("param") QuesAskNumForm param);
    
    /**
     * 5071005 提问回复
     * */
    @Service(functionId = IFSFunctionIdsNew.IFSDavQuestionFuncIds.FUNC_QUESTION_ANSWER, desc = "提问回复")
    public HSBCPSBackVO funcQuestionAnswer(@ServiceParam("param") QuesAnswerForm param);
    
    /**
     * 5071006删除提问
     * 
     * @param param
     * @return
     */
    @Service(functionId = IFSFunctionIdsNew.IFSDavQuestionFuncIds.FUNC_QUESTION_DEL, desc = "删除提问")
    public HSBCPSBackVO funcQuestionDel(@ServiceParam("param") QuestionIdForm param);
    
    /**
     * 5071007 提问回复修改
     * */
    @Service(functionId = IFSFunctionIdsNew.IFSDavQuestionFuncIds.FUNC_QUESTION_ANSWER_UPDATE, desc = "提问回复修改")
    public HSBCPSBackVO funcQuestionAnswerUpdate(@ServiceParam("param") QuesAnswerUpdateForm param);
    
    /**
     * 未读问题条数 5071008
     * @param param
     * @return
     */
    @Service(functionId = IFSFunctionIdsNew.IFSDavQuestionFuncIds.FUNC_QUESTION_NOREAD_NUM, desc = "未读问题条数")
    public HSBCPSBackNumVO funcQuestionNoreadNum(@ServiceParam("param") HSBCPSVO param);
    
    /**
     * 5071009粉丝删除自己的提问
     * @param form
     * @return
     */
    @Service(functionId = IFSFunctionIdsNew.IFSDavQuestionFuncIds.FUNC_FANS_QUESTION_DEL, desc = "粉丝删除自己的提问")
    public HSBCPSBackVO funcFansQuestionDel(@ServiceParam("param") QuestionIdForm param);
    
    /**
     * 多投顾问答列表
     * @param form
     * @return
     */
    @Service(functionId = IFSFunctionIdsNew.IFSDavQuestionFuncIds.FUNC_QUESTION_LIST_BY_TENANT, desc = "多投顾问答列表")
    public TenantQuestionListResult funcQuestionAnswerListByTenant(TenantKeyListQryForm form);
    
    /**
     * 多投顾提问
     * @param quesAskForm
     * @return
     */
    @Service(functionId = IFSFunctionIdsNew.IFSDavQuestionFuncIds.FUNC_QUESTION_ASK_BY_TENANT, desc = "多投顾提问")
    public HSBCPSBackVO funcAskQuestionByTenant(TenantQuesAskForm quesAskForm);
    
}
